home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d18 / totdem.arc / DEMIO20.PAS < prev    next >
Pascal/Delphi Source File  |  1991-02-10  |  3KB  |  139 lines

  1. program DemoIOTwenty;
  2. {demIO20 - an extension of demio18 adding help}
  3.  
  4. Uses DOS, CRT,
  5.      totFAST, totIO1, totIO2, totSTR, totMSG;
  6.  
  7. var
  8.   Search: LateralIOOBJ;
  9.   Field1: CheckIOOBJ;
  10.   Field2,
  11.   Field3,
  12.   Field4: RadioIOOBJ;
  13.   OK,Cancel,HelpBut: Strip3dIOOBJ;
  14.   F1key: HotkeyIOOBJ;
  15.   Keys: ControlKeysIOOBJ;
  16.   Manager: WinFormOBJ;
  17.   Result: tAction;
  18.  
  19. {$F+}
  20. procedure HelpRoutine(ID:word);
  21. {}
  22. var HelpTxt:  MessageOBJ;
  23. begin
  24.    with HelpTxt do
  25.    begin
  26.       Init(1,' Help ');
  27.       AddLine('');
  28.       Addline(' Just imagine that this is some ');
  29.       Addline(' extraordinary help about field ');
  30.       AddLine(padcenter(inttoStr(ID),32,' '));
  31.       AddLine('');
  32.       Show;
  33.       Done;
  34.    end;
  35. end; {HelpRoutine}
  36. {$F-}
  37.  
  38. procedure InitVars;
  39. {}
  40. begin
  41.    with Search do
  42.    begin
  43.       Init(10,2,40,60);
  44.       SetLabel('~S~earch');
  45.       SetHotKey(287); {Alt-S}
  46.       SetID(1);
  47.    end;
  48.    with Field1 do
  49.    begin
  50.       Init(3,4,25,4,'Options');
  51.       AddItem('~C~ase sensitive',302,false);
  52.       AddItem('~W~hole words only',273,false);
  53.       AddItem('~R~egular expression',275,false);
  54.       SetID(2);
  55.    end;
  56.    with Field2 do
  57.    begin
  58.       Init(3,8,25,3,'Scope');
  59.       AddItem('~G~lobal',290,true);
  60.       AddItem('Selected ~t~ext',276,false);
  61.       SetID(3);
  62.    end;
  63.    with Field3 do
  64.    begin
  65.       Init(33,4,17,3,'Direction');
  66.       AddItem('Forwar~d~',288,true);
  67.       AddItem('~B~ackward',304,false);
  68.       SetID(4);
  69.    end;
  70.    with Field4 do
  71.    begin
  72.       Init(33,8,17,3,'Origin');
  73.       AddItem('~F~rom cursor',289,false);
  74.       AddItem('~E~ntire scope',274,true);
  75.       SetID(5);
  76.    end;
  77.    OK.Init(6,12,'   ~O~K   ',Finished);
  78.    OK.SetHotkey(280);
  79.    OK.SetID(6);
  80.    Cancel.Init(20,12,' C~a~ncel ',Escaped);
  81.    Cancel.SetHotkey(286);
  82.    Cancel.SetID(7);
  83.    HelpBut.Init(34,12,'  ~H~elp  ',Help);
  84.    HelpBut.SetHotkey(291);
  85.    HelpBut.SetID(HelpID);
  86.    F1Key.Init(315,Help);
  87.    Keys.Init;
  88. end; {InitVars}
  89.  
  90. procedure DisposeVars;
  91. {}
  92. begin
  93.    Search.Done;
  94.    Field1.Done;
  95.    Field2.Done;
  96.    Field3.Done;
  97.    Field4.Done;
  98.    OK.Done;
  99.    Cancel.Done;
  100.    HelpBut.Done;
  101.    Keys.Done;
  102.    F1key.Done;
  103. end; {DisposeVars}
  104.  
  105. begin
  106.    InitVars;
  107.    Screen.Clear(white,'░'); {paint the screen}
  108.    with Manager do
  109.    begin
  110.       Init;
  111.       Win^.SetSize(14,2,65,16,1);
  112.       Win^.SetTitle(' Press Tab to change fields. ');
  113.       AddItem(Keys);
  114.       AddItem(F1Key);
  115.       AddItem(Search);
  116.       AddItem(Field1);
  117.       AddItem(Field2);
  118.       AddItem(Field3);
  119.       AddItem(Field4);
  120.       AddItem(OK);
  121.       AddItem(Cancel);
  122.       AddItem(HelpBut);
  123.       SetHelpHook(HelpRoutine);
  124.       Draw;
  125.       Result := Go;
  126.       Win^.Remove;
  127.       if Result = Finished then
  128.       begin
  129.          GotoXY(1,18);
  130.       end
  131.       else
  132.       begin
  133.          GotoXY(1,20);
  134.          writeln('You escaped!');
  135.       end;
  136.       DisposeVars;
  137.       Done;
  138.    end;
  139. end.